package com.dao;

import java.util.List;

import com.beans.CateInfo;
import com.jdbc.DBUtil;

//用于分类管理
public class CateDao {

	//添加一级分类
	public int addCate(CateInfo cate) {
		String sql="insert into cateInfo (cateName,des,parentId) values(?,?,?)";
		return DBUtil.update(sql, cate.getCateName(),cate.getDes(),cate.getParentId());
	}
	
	//根据父级分类ID查询子分类
	public List<CateInfo> getCateList(int parentId){
		String sql="select * from cateInfo where parentId=?";
		List<CateInfo> cateList= DBUtil.getList(sql, CateInfo.class, parentId);
		
		for(CateInfo c:cateList){
			if(c.getParentId()==0){
				c.setSubCateList(getCateList(c.getId()));
			}
		}
		
		return cateList;
	}

	//查询属于某个小分类的商品数量
	public int getGoodsCountBySmallCate(int cateId) {
		String sql="select count(*) from goodsInfo where smallCateId=?";
		long result=DBUtil.getScalar(sql, cateId);
		return new Integer(result+"");
	}

	//删除小分类
	public int delCateById(int cateId) {
		return DBUtil.update("delete from cateInfo where id=?" , cateId);
	}

	//查询一个大分类下,有多少个小分类
	public int getSubCountByBigCate(int cateId) {
		String sql="select count(*) from cateInfo where parentId=?";
		long result=DBUtil.getScalar(sql, cateId);
		return new Integer(result+"");
	}
	
	//根据id查询分类信息
	public CateInfo getCateInfoById(int cateId){
		return DBUtil.getOneObject("select * from cateInfo where id=? ", CateInfo.class, cateId);
	}

	//更新分类信息
	public int update(CateInfo cateInfo) {
		String sql="update cateInfo set parentId=? , cateName=? , des=? where id= ?";
		Object [] params={
				cateInfo.getParentId(),
				cateInfo.getCateName(),
				cateInfo.getDes(),
				cateInfo.getId()
		};
		
		return DBUtil.update(sql, params);
	}	
}
